/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ajustecurvas.utils;

/**
 *
 * @author João Gabriel QA
 */
public class CriaMatriz {
    
    public double[][] criaMatriz(double[] eixo){
        double[][] matriz = new double[3][3];
        
        matriz[0][0] = eixo.length;
        matriz[0][1] = matriz[1][0] = somatorio(eixo, 1);
        matriz[0][2] = matriz[1][1] = matriz[2][0] = somatorio(eixo, 2);
        matriz[1][2] = matriz[2][1] = somatorio(eixo, 3);
        matriz[2][2] = somatorio(eixo, 4);
        
        return matriz;
    }
    
    public double somatorio(double[] eixo, int expoente){
        double resultado = 0;
        
        for(int i = 0; i < eixo.length; i++){
            resultado += Math.pow(eixo[i], expoente);
        }
        
        return resultado;
    }
    
    public double multiplicador(double[] eixoX, double[] eixoY, int expoente){
        double resultado = 0;
        
        for(int i = 0; i < eixoX.length; i++){
            resultado += eixoY[i] * Math.pow(eixoX[i], expoente);
        }
        
        return resultado;
    }
    
    public double[] criaVetorResposta(double[] eixoX, double[] eixoY){
        
        double[] vetorResposta = new double[3];
        
        vetorResposta[0] = somatorio(eixoY, 1);
        vetorResposta[1] = multiplicador(eixoX, eixoY, 1);
        vetorResposta[2] = multiplicador(eixoX, eixoY, 2);
        
        return vetorResposta;
        
    }
    
}
